The field of this invention is network management, and in particular the discovery of information about network resources. A first network resource must often discover the existence and/or status of a second network resource in order to carry out a desired function. For example, if an application at the first resource desires to print a document at a printer close to a given geographical location, the first resource must discover if there is a printer (the second resource) near the location that is available and capable of printing the document.
In certain instances, information regarding the status and even the existence of a resource can be sensitive. For example, a database server can access several different databases, some of which are public, and some of which are private. In this example, one such public database is an index (or "white pages") of e-mail addresses of bank employees. A private database accessed through the same server contains customer credit card numbers and profiles.
In a known discovery system, a first resource sends a discovery request to the database server for a list of all databases that may be accessed through the server. In response, the server sends a complete list of such databases, including both public and private databases, to the requesting first resource as part of a discovery response message. This disadvantageously reveals the existence of the private credit card database, thus rendering it a target. In some instances, it can also reveal location and status information about the database that can disadvantageously aid an unauthorized party seeking unauthorized access to the database. An example of a known discovery system is disclosed in the proposed standard RFC (Request for Comments) 2165, Service Location Protocol, June 1997.
Known discovery systems disadvantageously fail to discriminate between authorized and unauthorized requesters of discovery information, and do not adequately protect the confidentiality or the integrity of discovery messages. As used herein a "discovery message" is a discovery request message or a discovery response message. As a result, known discovery systems are vulnerable to "spoofing." Spoofing occurs when a third party intentionally or accidentally sends a message whose purported source is not the actual source of the message. For example, a message purporting to originate from a customer is sent by an unauthorized party to the credit card database server authorizing the bank to send the customer's credit card number and profile to a third party, the unauthorized party. The credit agency that sends the report to the unauthorized party has been spoofed.
The discovery messages of known discovery systems are also disadvantageously vulnerable to compromise. Compromise occurs when any aspect of a message is modified or accessed in an unauthorized fashion. For example, if a customer's credit card balance is altered by an unauthorized party without authorization from the customer or the bank, then the balance has been compromised. Likewise, if a discovery response message sent to a legitimate requester is intercepted and copied by an unauthorized party, the message has been compromised.
Known discovery systems provide inadequate assurance to the recipient of a discovery message that the message is authentic, i.e., that the purported source of the message is its true source. Likewise, known discovery systems provide insufficient basis for the recipient of a discovery message to reasonably conclude that the message has not been subjected to unauthorized modification. Finally, neither the sender nor the recipient of a discovery message can be certain that the message has not been disclosed to an unauthorized third party. Known discovery systems provide inadequate means for authenticating and protecting the integrity and confidentiality of discovery messages.